home *** CD-ROM | disk | FTP | other *** search
- /* $Xorg: Print.h,v 1.3 2000/08/18 04:05:44 coskrey Exp $ */
- /******************************************************************************
- ******************************************************************************
- **
- ** File: Print.h
- **
- ** Description: Definitions needed by the server, library, and
- ** clients. Subportion restricted to library and
- ** clients.
- **
- ** Server, Library, Client portion has:
- ** o All sz_* defines
- ** o Revision and Name defines
- ** o Common defines and constants (e.g. Keywords, Masks)
- ** o Extension version structure
- **
- ** Library and client subportion has:
- ** o Convience Marcos
- ** o Client side data structures
- ** o Client side event structures (non wire)
- ** o Library function prototypes
- ** o some private stuff denoted with _whatever
- **
- ** Printstr.h for server and library, but NOT clients.
- **
- ******************************************************************************
- **
- ** (c) Copyright 1996 Hewlett-Packard Company
- ** (c) Copyright 1996 International Business Machines Corp.
- ** (c) Copyright 1996 Sun Microsystems, Inc.
- ** (c) Copyright 1996 Novell, Inc.
- ** (c) Copyright 1996 Digital Equipment Corp.
- ** (c) Copyright 1996 Fujitsu Limited
- ** (c) Copyright 1996 Hitachi, Ltd.
- **
- ** Permission is hereby granted, free of charge, to any person obtaining a copy
- ** of this software and associated documentation files (the "Software"), to deal
- ** in the Software without restriction, including without limitation the rights
- ** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- ** copies of the Software, and to permit persons to whom the Software is
- ** furnished to do so, subject to the following conditions:
- **
- ** The above copyright notice and this permission notice shall be included in
- ** all copies or substantial portions of the Software.
- **
- ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- ** COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- ** IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- ** CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- **
- ** Except as contained in this notice, the names of the copyright holders shall
- ** not be used in advertising or otherwise to promote the sale, use or other
- ** dealings in this Software without prior written authorization from said
- ** copyright holders.
- **
- ******************************************************************************
- *****************************************************************************/
- /* $XFree86: xc/include/extensions/Print.h,v 1.4 2000/01/25 18:37:31 dawes Exp $ */
-
- #ifndef _XpPrint_H_
- #define _XpPrint_H_
-
- #ifndef _XP_PRINT_SERVER_
- #include <X11/Xlib.h>
- #include <X11/Xresource.h>
- #include <X11/Xauth.h>
- #endif /* _XP_PRINT_SERVER_ */
-
- #include <X11/Xfuncproto.h>
-
- _XFUNCPROTOBEGIN
-
- /******************************************************************************
- *
- * Definitions used by the server, library and client.
- */
-
- /********************************************************************
- *
- * Naming and versioning information.
- */
- #define XP_PRINTNAME "XpExtension"
-
- /*
- * Add a define below for each major extension release.
- */
- #define XP_DONT_CHECK 0
- #define XP_INITIAL_RELEASE 1
-
- /*
- * For each single entry above, create one major/minor pair.
- */
- #define XP_PROTO_MAJOR 1
- #define XP_PROTO_MINOR 0
-
- /*
- * Identify current version.
- */
- #define XP_MAJOR_VERSION XP_PROTO_MAJOR
- #define XP_MINOR_VERSION XP_PROTO_MINOR
-
- /*
- * Misc version defines.
- */
- #define XP_ABSENT 0 /* Prior to XP Print support */
- #define XP_PRESENT 1 /* With XP Print support */
-
- /********************************************************************
- *
- * Xp Print Error codes.
- */
- #define XP_ERRORS 3 /* number of error types */
-
- #define XPBadContext 0 /* Print Context invalid or missing */
- #define XPBadSequence 1 /* Illegal sequence of XP operations */
- #define XPBadResourceID 2 /* X-resource not valid */
-
- /********************************************************************
- *
- * Xp Print Event masks and codes.
- *
- */
- #define XP_EVENTS 2 /* number of event types */
-
- #define XPNoEventMask 0 /* not an event - just a null mask */
- #define XPPrintMask (1L<<0)
- #define XPAttributeMask (1L<<1)
-
- #define XPPrintNotify 0 /* contains "detail" - see below */
- #define XPAttributeNotify 1 /* contains "detail" - see below */
-
- #define XPStartJobNotify 0 /* value for "detail" in XPPrintNotify*/
- #define XPEndJobNotify 1
- #define XPStartDocNotify 2
- #define XPEndDocNotify 3
- #define XPStartPageNotify 4
- #define XPEndPageNotify 5
-
- /********************************************************************
- *
- * Xp Print Attribute Object codes (subset of ISO DPA 10175). The
- * Xp Server can get and set any of the values, while the Xp Library
- * may only be able to set a subset of the attribute objects.
- *
- * note: the codes are also used as "detail" for XPAttributeNotify
- *
- * note: XPPageAttr is not defined in ISO DPA 10175. It is unique
- * to Xp, and its attributes are a proper subset of XPDocAttr.
- */
- typedef unsigned char XPAttributes; /* type of Xp*Attr codes */
-
- #define XP_ATTRIBUTES 5 /* those attrs currently supported */
-
- #define XPJobAttr 1 /* get/set */
- #define XPDocAttr 2 /* get/set */
- #define XPPageAttr 3 /* get/set - subset of XPDocAttr */
- #define XPPrinterAttr 4 /* get only (library) */
- #define XPServerAttr 5 /* get only (library), no
- context needed */
-
- /*
- * note: ISO DPA 10175 defines a number of "attribute objects", of
- * which POSIX 1387.4 and the SI Xp will only support a
- * subset.
- */
- #define XPMediumAttr 6 /* DPA-Object Medium */
- #define XPFontAttr 7 /* DPA-Object Font */
- #define XPResAttr 8 /* DPA-Object Resource */
- #define XPTransAttr 9 /* DPA-Object Transfer method */
- #define XPDelAttr 10 /* DPA-Object Delivery method */
- #define XPAuxSPkg 11 /* DPA-Object Auxiliary sheet package */
- #define XPAuxS 12 /* DPA-Object Auxiliary sheet */
- #define XPFinishAttr 13 /* DPA-Object Finishing */
- #define XPOutputAttr 14 /* DPA-Object Output method */
- #define XPImpAttr 15 /* DPA-Object Imposition */
- #define XPSchedAttr 16 /* DPA-Object Scheduler */
- #define XPIntJobAttr 17 /* DPA-Object Initial value job */
- #define XPIntDocAttr 18 /* DPA-Object Initial value document */
- #define XPResConAttr 19 /* DPA-Object Resource context */
-
-
- /*
- * Replacement rules for XpSetAttributes
- */
- typedef unsigned char XPAttrReplacement;
- #define XPAttrReplace 1
- #define XPAttrMerge 2
-
-
- /*
- * Return codes for XpGetDocumentData
- */
- typedef unsigned char XPGetDocStatus;
- #define XPGetDocFinished 0 /* normal termination */
- #define XPGetDocSecondConsumer 1 /* setup error */
- #define XPGetDocError 2 /* runtime error, see generated error */
-
-
- /*
- * Save data types for XpStartJob.
- */
- typedef unsigned char XPSaveData;
- #define XPSpool 1 /* Job data sent to spooler */
- #define XPGetData 2 /* Job data via XpGetDocumentData */
-
-
- /*
- * Document types for XpStartDoc.
- */
- typedef unsigned char XPDocumentType;
- #define XPDocNormal 1 /* Doc data handled by Xserver */
- #define XPDocRaw 2 /* Doc data passed through Xserver */
-
-
- /********************************************************************
- *
- * Xp Print Property Names
- */
-
-
- #ifndef _XP_PRINT_SERVER_
-
- /******************************************************************************
- *
- * Definitions used by the library and clients only.
- */
-
- /*******************************************************************
- *
- * General API defines and such.
- */
-
- /*
- * Print Context for XpInitContext and related calls.
- */
- typedef XID XPContext;
-
- /*
- * Struct for XpGetPrinterList.
- */
- typedef struct {
- char *name; /* name */
- char *desc; /* localized description */
- } XPPrinterRec, *XPPrinterList;
-
- /*
- * Typedefs for XpGetDocumentData
- */
- typedef void (*XPSaveProc)( Display *display,
- XPContext context,
- unsigned char *data,
- unsigned int data_len,
- XPointer client_data);
-
- typedef void (*XPFinishProc)( Display *display,
- XPContext context,
- XPGetDocStatus status,
- XPointer client_data);
-
- /*
- * Typedefs for XpSetLocaleHinter and XpGetLocaleHinter
- */
- typedef char * (*XPHinterProc)(void);
-
- #if 0
- /*******************************************************************
- *
- * Extension version structures.
- *
- **** this structure is now defined localy in the one file that uses it
- **** in order to avoid clashes with its definition in XI.h
- */
- typedef struct {
- int present;
- short major_version;
- short minor_version;
- } XExtensionVersion;
- #endif
-
- /********************************************************************
- *
- * Event structs for clients.
- *
- * note: these events are relative to a print context, and
- * not to a window as in core X.
- */
- typedef struct {
- int type; /* base + XPPrintNotify */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if from a SendEvent request */
- Display *display; /* Display the event was read from */
- XPContext context; /* print context where operation was requested */
- Bool cancel; /* was detailed event canceled */
- int detail; /* XPStartJobNotify, XPEndJobNotify,
- XPStartDocNotify, XPEndDocNotify,
- XPStartPageNotify, XPEndPageNotify */
- } XPPrintEvent;
-
- typedef struct {
- int type; /* base + XPAttributeNotify */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if from a SendEvent request */
- Display *display; /* Display the event was read from */
- XPContext context; /* print context where operation was requested */
- int detail; /* XPJobAttr, XPDocAttr, XPPageAttr,
- XPPrinterAttr, XPSpoolerAttr,
- XPMediumAttr, XPServerAttr */
- } XPAttributeEvent;
-
- typedef struct {
- int type; /* base + XPDataReadyNotify */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if from a SendEvent request */
- Display *display; /* Display the event was read from */
- XPContext context; /* print context where operation was requested */
- unsigned long available; /* bytes available for retrieval */
- } XPDataReadyEvent;
-
-
- /**********************************************************
- *
- * Function prototypes for library side.
- */
-
- extern XPContext XpCreateContext (
- Display *display,
- char *printer_name
- );
-
- extern void XpSetContext (
- Display *display,
- XPContext print_context
- );
-
- extern XPContext XpGetContext (
- Display *display
- );
-
- extern void XpDestroyContext (
- Display *display,
- XPContext print_context
- );
-
- extern Screen *XpGetScreenOfContext (
- Display *display,
- XPContext print_context
- );
-
- extern Status XpGetPageDimensions (
- Display *display,
- XPContext print_context,
- unsigned short *width, /* return value */
- unsigned short *height, /* return value */
- XRectangle *reproducible_area /* return value */
- );
-
- extern void XpStartJob (
- Display *display,
- XPSaveData save_data
- );
-
- extern void XpEndJob (
- Display *display
- );
-
- extern void XpCancelJob (
- Display *display,
- Bool discard
- );
-
- extern void XpStartDoc (
- Display *display,
- XPDocumentType type
- );
-
- extern void XpEndDoc (
- Display *display
- );
-
- extern void XpCancelDoc (
- Display *display,
- Bool discard
- );
-
- extern void XpPutDocumentData (
- Display *display,
- Drawable drawable,
- unsigned char *data,
- int data_len,
- char *doc_fmt,
- char *options
- );
-
- extern Status XpGetDocumentData (
- Display *display,
- XPContext context,
- XPSaveProc save_proc,
- XPFinishProc finish_proc,
- XPointer client_data
- );
-
- extern void XpStartPage (
- Display *display,
- Window window
- );
-
- extern void XpEndPage (
- Display *display
- );
-
- extern void XpCancelPage (
- Display *display,
- Bool discard
- );
-
- extern void XpSelectInput (
- Display *display,
- XPContext print_context,
- unsigned long event_mask
- );
-
- extern unsigned long XpInputSelected (
- Display *display,
- XPContext print_context,
- unsigned long *all_events_mask
- );
-
- extern Bool XpSetImageResolution (
- Display *display,
- XPContext print_context,
- int image_res,
- int *prev_res
- );
-
- extern int XpGetImageResolution (
- Display *display,
- XPContext print_context
- );
-
- extern char *XpGetAttributes (
- Display *display,
- XPContext print_context,
- XPAttributes type
- );
-
- extern void XpSetAttributes (
- Display *display,
- XPContext print_context,
- XPAttributes type,
- char *pool,
- XPAttrReplacement replacement_rule
- );
-
- extern char *XpGetOneAttribute (
- Display *display,
- XPContext print_context,
- XPAttributes type,
- char *attribute_name
- );
-
- extern XPPrinterList XpGetPrinterList (
- Display *display,
- char *printer_name,
- int *list_count /* return value */
- );
-
- extern void XpFreePrinterList (
- XPPrinterList printer_list
- );
-
- extern void XpRehashPrinterList (
- Display *display
- );
-
- extern Status XpQueryVersion (
- Display *display,
- short *major_version, /* return value */
- short *minor_version /* return value */
- );
-
- extern Bool XpQueryExtension (
- Display *display,
- int *event_base_return, /* return value */
- int *error_base_return /* return value */
- );
-
- extern Screen **XpQueryScreens (
- Display *display,
- int *list_count /* return value */
- );
-
- extern Status XpGetPdmStartParams (
- Display *print_display,
- Window print_window,
- XPContext print_context,
- Display *video_display,
- Window video_window,
- Display **selection_display, /* return value */
- Atom *selection, /* return value */
- Atom *type, /* return value */
- int *format, /* return value */
- unsigned char **data, /* return value */
- int *nelements /* return value */
- );
-
- extern Status XpGetAuthParams (
- Display *print_display,
- Display *video_display,
- Display **selection_display, /* return value */
- Atom *selection, /* return value */
- Atom *target /* return value */
- );
-
- extern Status XpSendAuth (
- Display *display,
- Window window
- );
-
- extern Status XpSendOneTicket (
- Display *display,
- Window window,
- Xauth *ticket,
- Bool more
- );
-
- extern void XpSetLocaleHinter (
- XPHinterProc hinter_proc,
- char *hinter_desc
- );
-
- extern char *XpGetLocaleHinter (
- XPHinterProc *hinter_proc
- );
-
- extern char *XpGetLocaleNetString(void);
-
- extern char *XpNotifyPdm (
- Display *print_display,
- Window print_window,
- XPContext print_context,
- Display *video_display,
- Window video_window,
- Bool auth_flag
- );
-
- #endif /* _XP_PRINT_SERVER_ */
-
- _XFUNCPROTOEND
-
- #endif /* _XpPrint_H_ */
-